<?php
/**
 * Autor:   Miguel A. Zilli
 * Email:   miguelzilli@gmail.com
 */

class InformesController extends AppController {
    var $name='Informes';
    var $uses = array('Productor','Predio','Revision','Localidad','Departamento',
    'Produccion','Producto','Produccionforma','Riegoforma','Instalacion',
    'Instalacionestipo','Instsupertipo','Atributosxinstalacion'
    );
    var $helpers = array('Ajax','Javascript','Number','DatePicker');
    var $components = array('RequestHandler');

    function beforeFilter() {
        parent::beforeFilter();
        $this->__checkAdmin();
    }

    function index() {

    }

    function superficie_de_produccion() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $desde = date('Y-m-d');
            $hasta = date('Y-m-d');
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $desde = date('Y-m-d', strtotime($this->data['Busqueda']['fch_desde']));
            $hasta = date('Y-m-d', strtotime($this->data['Busqueda']['fch_hasta']));
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $desde = $this->Session->read('Busqueda.fch_desde');
            $hasta = $this->Session->read('Busqueda.fch_hasta');
        }
        $condiciones['Predio.productor_id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $condiciones['OR']=array(
                        'Localidad.nombre_loc LIKE'=>"%$filtro%",
                        'Predio.col_paraje_pred LIKE'=>"%$filtro%"
                    );
                    break;

                case 'departamento':
                    $condiciones['Localidad.departamento_id']=$this->Departamento->find('list',array(
                        'fields'=>'Departamento.id',
                        'conditions'=>array('Departamento.nombre_dpto LIKE'=>"%$filtro%")
                    ));
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.fch_desde', $desde);
        $this->Session->write('Busqueda.fch_hasta', $hasta);
        $fields=array(
            'Predio.id', 'Predio.sup_pred', 'Predio.sup_boscosa_pred',
            'Predio.sup_cultivable_pred', 'Predio.sup_ganadera_pred',
            'Predio.productor_id', 'Predio.localidad_id',
            '(`Predio`.`sup_pred`-((`Predio`.`sup_boscosa_pred`)+(`Predio`.`sup_cultivable_pred`)+(`Predio`.`sup_ganadera_pred`))) AS `sin_uso`',
            '((`Predio`.`sup_boscosa_pred`)*(100)/(`Predio`.`sup_pred`)) AS `porcentaje_boscosa`',
            '((`Predio`.`sup_cultivable_pred`)*(100)/(`Predio`.`sup_pred`)) AS `porcentaje_cultivable`',
            '((`Predio`.`sup_ganadera_pred`)*(100)/(`Predio`.`sup_pred`)) AS `porcentaje_ganadera`',
            '((`Predio`.`sup_pred`-((`Predio`.`sup_boscosa_pred`)+(`Predio`.`sup_cultivable_pred`)+(`Predio`.`sup_ganadera_pred`)))*(100)/(`Predio`.`sup_pred`)) AS `porcentaje_sin_uso`',
            'Productor.apellido_prod', 'Productor.nombre_prod');
        $this->paginate=array(
            'Predio'=>array(
            'fields'=>$fields,
            'limit'=>'20',
            'order'=>array('Productor.apellido_prod'=>'ASC','Productor.nombre_prod'=>'ASC','Predio.sup_pred'=>'ASC')
        ));
        $predios_tmp=$this->paginate('Predio', $condiciones);
        if($predios_tmp) {
            foreach ($predios_tmp as $tmp) {
                $predios[]=array_merge($tmp,(array)$this->Produccion->find('first',array(
                    'fields'=>array(
                    '(SUM(`Produccion`.`sup_sem_prod`) / 10000) AS `produccion_horticola`',
                    '((SUM(`Produccion`.`sup_sem_prod`) / 10000)*(100)/(`Predio`.`sup_pred`)) AS `porcentaje_produccion_horticola`'
                    ),
                    'conditions'=>array(
                    'Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA,
                    'Produccion.predio_id'=>$tmp['Predio']['id'],
                    //                    'ADDDATE(`Produccion`.`fch_prod`, `Producto`.`ciclo_max_prod`) >'=>date('Y-m-d')
                    'ADDDATE(`Produccion`.`fch_prod`, `Producto`.`ciclo_max_prod`) >='=>$desde,
                    'ADDDATE(`Produccion`.`fch_prod`, `Producto`.`ciclo_max_prod`) <='=>$hasta
                    ),
                    'group'=>'Produccion.predio_id'
                )));
            }
            $this->set('predios', $predios);
        }
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','localidad'=>'Localidad/Colonia','departamento'=>'Departamento'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('fch_desde', date('d-m-Y', strtotime($desde)));
        $this->set('fch_hasta', date('d-m-Y', strtotime($hasta)));

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_superficie', 'ajax');
        }
    }

    function ofertas_actuales() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $desde = date('Y-m-d');
            $hasta = date('Y-m-d');
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $desde = date('Y-m-d', strtotime($this->data['Busqueda']['fch_desde']));
            $hasta = date('Y-m-d', strtotime($this->data['Busqueda']['fch_hasta']));
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $desde = $this->Session->read('Busqueda.fch_desde');
            $hasta = $this->Session->read('Busqueda.fch_hasta');
        }
        $condiciones['Produccion.productor_id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        //$hoy=date('Y-m-d');
        //        $condiciones['ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <']=$hoy;
        //        $condiciones['ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >']=$hoy;
        $condiciones[]=array(
            'OR'=>array(
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) >='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) <='=>$hasta),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$desde),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$hasta, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$hasta),
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'cultivo':
                    $condiciones['OR']=array(
                        'Producto.nombre_prod LIKE'=>"%$filtro%",
                        'Producto.variedad_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $id_localidades=$this->Localidad->find('list',array(
                        'fields'=>'Localidad.id',
                        'conditions'=>array(
                        'Departamento.provincia_id'=>$this->CHACO,
                        'Localidad.nombre_loc LIKE'=>"%$filtro%"),
                        'recursive'=>'0'
                    ));
                    $condiciones['OR']=array(
                        'Predio.localidad_id'=>$id_localidades,
                        'Predio.col_paraje_pred LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.fch_desde', $desde);
        $this->Session->write('Busqueda.fch_hasta', $hasta);
        $fields=array(
            'Produccion.id',
            'Produccion.fch_prod', 'Produccion.sup_sem_prod', 'Produccion.productor_id',
            'Producto.nombre_prod', 'Producto.variedad_prod', 'Producto.tolerancia_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) AS `fch_corte_min`',
            'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) AS `fch_corte_max`',
        );
        $this->paginate=array(
            'Produccion'=>array(
            'fields'=>$fields,
            'limit'=>'20',
            'order'=>array('Producto.nombre_prod', 'Producto.variedad_prod',
            'Produccion.fch_prod'=>'ASC', 'Produccion.sup_sem_prod'=>'DESC')
        ));
        $producciones=$this->paginate('Produccion', $condiciones);
        $this->set('producciones', $producciones);
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','cultivo'=>'Cultivo/Variedad','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('fch_desde', date('d-m-Y', strtotime($desde)));
        $this->set('fch_hasta', date('d-m-Y', strtotime($hasta)));
        $this->set('filtro', $filtro);
        $this->set('buscar_por', $buscar_por);

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_ofertas', 'ajax');
        }
    }

    function ofertas_actuales_excel($buscar_por='cuit', $desde=null, $hasta=null, $filtro='') {
        Configure::write('debug','0');
        $condiciones['Produccion.productor_id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        $desde=date('Y-m-d',strtotime($desde));
        $hasta=date('Y-m-d',strtotime($hasta));
        $condiciones[]=array(
            'OR'=>array(
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) >='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) <='=>$hasta),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$desde),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$hasta, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$hasta),
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'cultivo':
                    $condiciones['OR']=array(
                        'Producto.nombre_prod LIKE'=>"%$filtro%",
                        'Producto.variedad_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $id_localidades=$this->Localidad->find('list',array(
                        'fields'=>'Localidad.id',
                        'conditions'=>array(
                        'Departamento.provincia_id'=>$this->CHACO,
                        'Localidad.nombre_loc LIKE'=>"%$filtro%"),
                        'recursive'=>'0'
                    ));
                    $condiciones['OR']=array(
                        'Predio.localidad_id'=>$id_localidades,
                        'Predio.col_paraje_pred LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.fch_desde', $desde);
        $this->Session->write('Busqueda.fch_hasta', $hasta);
        $fields=array(
            'Produccion.id',
            'Produccion.fch_prod', 'Produccion.sup_sem_prod', 'Produccion.productor_id',
            'Producto.nombre_prod', 'Producto.variedad_prod', 'Producto.tolerancia_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) AS `fch_corte_min`',
            'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) AS `fch_corte_max`',
        );
        $this->paginate=array(
            'Produccion'=>array(
            'fields'=>$fields,
            'limit'=>'0',
            'order'=>array('Producto.nombre_prod', 'Producto.variedad_prod',
            'Produccion.fch_prod'=>'ASC', 'Produccion.sup_sem_prod'=>'DESC')
        ));
        $producciones=$this->paginate('Produccion', $condiciones);
        $this->set('producciones', $producciones);
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','cultivo'=>'Cultivo/Variedad','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('fch_desde', date('d-m-Y', strtotime($desde)));
        $this->set('fch_hasta', date('d-m-Y', strtotime($hasta)));
        $this->render('ofertas_actuales_excel', 'excel');
    }

    function tecnologias_produccion() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
            $this->set('formasproduccion',$this->Produccionforma->find('list'));
            $this->set('formasriego',$this->Riegoforma->find('list'));
            $desde = date('Y-m-d');
            $hasta = date('Y-m-d');
        }
        $condiciones = $filtro = $produccionforma_id = $riegoforma_id = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
            $desde = date('Y-m-d', strtotime($this->data['Busqueda']['fch_desde']));
            $hasta = date('Y-m-d', strtotime($this->data['Busqueda']['fch_hasta']));
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
            $desde = $this->Session->read('Busqueda.fch_desde');
            $hasta = $this->Session->read('Busqueda.fch_hasta');
        }
        if (isset($this->data['Busqueda']['produccionforma_id'])) {
            $produccionforma_id = $this->data['Busqueda']['produccionforma_id'];
        }elseif (!empty($this->data['Busqueda']['produccionforma_id']) &&
            $this->data['Busqueda']['produccionforma_id'] == '') {
            $this->Session->del('Busqueda.produccionforma_id');
        }elseif ($this->Session->check('Busqueda.produccionforma_id')) {
            $produccionforma_id = $this->Session->read('Busqueda.produccionforma_id');
        }
        if ($produccionforma_id != '') {
            $condiciones['Produccion.produccionforma_id']=$produccionforma_id;
        }
        if (isset($this->data['Busqueda']['riegoforma_id'])) {
            $riegoforma_id = $this->data['Busqueda']['riegoforma_id'];
        }elseif (!empty($this->data['Busqueda']['riegoforma_id']) &&
            $this->data['Busqueda']['riegoforma_id'] == '') {
            $this->Session->del('Busqueda.riegoforma_id');
        }elseif ($this->Session->check('Busqueda.riegoforma_id')) {
            $riegoforma_id = $this->Session->read('Busqueda.riegoforma_id');
        }
        if ($riegoforma_id != '') {
            $condiciones['Produccion.riegoforma_id']=$riegoforma_id;
        }
        $condiciones['Produccion.productor_id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        //        $hoy=date('Y-m-d');
        //        $condiciones['`Produccion`.`fch_prod` <']=$hoy;
        //        $condiciones['ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >']=$hoy;
        $condiciones[]=array(
            'OR'=>array(
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) >='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) <='=>$hasta),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$desde, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$desde),
            array('ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_min_prod`) <='=>$hasta, 'ADDDATE(`Produccion`.`fch_prod`,`Producto`.`ciclo_max_prod`) >='=>$hasta),
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $condiciones['OR']=array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'cultivo':
                    $condiciones['OR']=array(
                        'Producto.nombre_prod LIKE'=>"%$filtro%",
                        'Producto.variedad_prod LIKE'=>"%$filtro%"
                    );
                    break;

                case 'localidad':
                    $id_localidades=$this->Localidad->find('list',array(
                        'fields'=>'Localidad.id',
                        'conditions'=>array(
                        'Departamento.provincia_id'=>$this->CHACO,
                        'Localidad.nombre_loc LIKE'=>"%$filtro%"),
                        'recursive'=>'0'
                    ));
                    $condiciones['OR']=array(
                        'Predio.localidad_id'=>$id_localidades,
                        'Predio.col_paraje_pred LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $this->Session->write('Busqueda.produccionforma_id',$produccionforma_id);
        $this->Session->write('Busqueda.riegoforma_id',$riegoforma_id);
        $this->Session->write('Busqueda.fch_desde', $desde);
        $this->Session->write('Busqueda.fch_hasta', $hasta);
        $fields=array(
            'Produccion.id',
            'SUM(`Produccion`.`sup_sem_prod`) AS `sup_sem_prod`', 'Produccion.productor_id',
            'Producto.nombre_prod', 'Producto.variedad_prod',
            'Productor.apellido_prod', 'Productor.nombre_prod',
            'Produccionforma.forma_prod', 'Riegoforma.forma_riego'
        );
        $this->paginate=array(
            'Produccion'=>array(
            'fields'=>$fields,
            'limit'=>'0',
            'group'=>array('Produccion.producto_id','Produccion.produccionforma_id','Produccion.riegoforma_id','Produccion.productor_id'),
            'order'=>array('Producto.nombre_prod', 'Producto.variedad_prod',
            'Productor.apellido_prod'=>'ASC', 'Productor.nombre_prod'=>'ASC',
            'Produccionforma.forma_prod'=>'ASC', 'Riegoforma.forma_riego')
        ));
        $producciones=$this->paginate('Produccion', $condiciones);
        $this->set('producciones', $producciones);
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','cultivo'=>'Cultivo/Variedad','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));
        $this->set('fch_desde', date('d-m-Y', strtotime($desde)));
        $this->set('fch_hasta', date('d-m-Y', strtotime($hasta)));

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_tecnologias', 'ajax');
        }
    }

    function capital_productivo() {
        Configure::write('debug','0');
        if(!$this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 0);
            $this->Session->del('Busqueda');
            $buscar_por='cuit';
        }
        $condiciones = $filtro = '';
        if (isset($this->data['Busqueda']['filtro'])) {
            $filtro = trim($this->data['Busqueda']['filtro']);
            $buscar_por = $this->data['Busqueda']['buscar_por'];
        }elseif (!empty($this->data['Busqueda']['filtro']) &&
            $this->data['Busqueda']['filtro'] == '') {
            $this->Session->del('Busqueda.filtro');
        }elseif ($this->Session->check('Busqueda.filtro')) {
            $filtro = $this->Session->read('Busqueda.filtro');
            $buscar_por = $this->Session->read('Busqueda.buscar_por');
        }
        $condiciones['Revision.productor_id']=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'group'=>'ActividadtiposProductor.productor_id'
        ));
        $condiciones['Instalacion.revision_id']=$this->Revision->find('list',array(
            'fields'=>'Revision.id',
            'conditions'=>array('Revision.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'order'=>array('Revision.fch_revision'=>'DESC'),
            'group'=>'Revision.productor_id',
            'recursive'=>'0'
        ));
        if (isset($filtro)) {
            switch ($buscar_por) {
                case 'cuit':
                    $id_productor=$this->Productor->find('list',array(
                        'fields'=>'Productor.id',
                        'conditions'=>array('OR'=>array(
                        'Productor.nro_doc_prod LIKE'=>"%$filtro%",
                        'Productor.cuit_prod LIKE'=>"%$filtro%")),
                        'recursive'=>'-1'
                    ));
                    $condiciones['Revision.productor_id']=$id_productor;
                    break;

                case 'instalacion':
                    $id_instsupertipo=$this->Instsupertipo->find('list',array(
                        'fields'=>'Instsupertipo.id',
                        'conditions'=>array('Instsupertipo.supertipo_inst LIKE'=>"%$filtro%")
                    ));
                    $condiciones['OR']=array(
                        'Instalacionestipo.instsupertipo_id'=>$id_instsupertipo,
                        'Instalacionestipo.desc_tipo_inst LIKE'=>"%$filtro%",
                    );
                    break;

                case 'localidad':
                    $id_predios=$this->Predio->find('list',array(
                        'fields'=>'Predio.id',
                        'conditions'=>array('Localidad.nombre_loc LIKE'=>"%$filtro%"),
                        'recursive'=>'0'
                    ));
                    $condiciones['OR']=array(
                        'Instalacion.predio_id'=>$id_predios,
                        'Predio.col_paraje_pred LIKE'=>"%$filtro%"
                    );
                    break;

                default:
                    $condiciones['1']='1';
                    break;
            }
            $this->Session->write('Busqueda.filtro', $filtro);
        }
        $this->Session->write('Busqueda.buscar_por', $buscar_por);
        $fields=array(
            'Instalacion.id',
            'Instalacion.cant_inst', 'Instalacion.instalacionestipo_id',
            'Revision.productor_id', 'Instalacionestipo.desc_tipo_inst'
        );
        $this->paginate=array(
            'Instalacion'=>array(
            'fields'=>$fields,
            'limit'=>'20',
            'order'=>array('Instalacionestipo.desc_tipo_inst', 'Instalacion.cant_inst')
        ));
        $instalaciones_tmp=$this->paginate('Instalacion', $condiciones);
        if($instalaciones_tmp) {
            foreach($instalaciones_tmp as $tmp) {
                $instalaciones[]=$tmp +
                    $this->Atributosxinstalacion->find('all',array(
                    'conditions'=>array('Atributosxinstalacion.instalacion_id'=>$tmp['Instalacion']['id']),
                    'order'=>array(
                    'Atributo.nombre_atr'=>'ASC',
                    'Atributosxinstalacion.valor_atr'=>'ASC')
                    )) +
                    $this->Productor->find('first',array(
                    'fields'=>array('Productor.id','Productor.apellido_prod','Productor.nombre_prod'),
                    'conditions'=>array('Productor.id'=>$tmp['Revision']['productor_id']),
                    'recursive'=>'-1'
                ));
            }
            $this->set('instalaciones',$instalaciones);
        }
        $this->set('instalaciones', $instalaciones);
        $this->set('radio_op',array('cuit'=>'DNI/CUIT','instalacion'=>'Instalación/Categoría','localidad'=>'Localidad/Colonia'));
        $this->set('radio_atr',array('value'=>$buscar_por,'legend'=>false));

        if($this->RequestHandler->isAjax()) {
            $this->set('llamada_ajax', 1);
            $this->render('/elements/update_info_capitales', 'ajax');
        }
    }

    /*
     * Estadisticas generales incluye:
     * Cantidad de productores registrados, por localidad y total
     * Cantidad de campos registrados, superficie total y superficie promedio por localidad
     * Cultivos segun frecuencia de siembra y superficie por localidad
     */
    function productores_localidad() {
        $ids_productores_frutihorticolas=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'order'=>'ActividadtiposProductor.productor_id',
            'recursive'=>'-1'
        ));
        $productoresLocalidad=$this->Productor->find('all',array(
            'fields'=>array(
            'COUNT(`Productor`.`id`) AS `total`',
            'Localidad`.`nombre_loc',
            'Localidad`.`departamento_id'),
            'conditions'=>array('Productor.id'=>$ids_productores_frutihorticolas),
            'group'=>'Productor.localidad_id',
            'order'=>'Localidad.nombre_loc'
        ));
        if ($productoresLocalidad) {
            foreach ($productoresLocalidad as $pxl) {
                $infos[]=$pxl+$this->Departamento->find('first',array(
                    'fields'=>array('Departamento.nombre_dpto','Provincia.nombre_prov'),
                    'conditions'=>array('Departamento.id'=>$pxl['Localidad']['departamento_id'])
                ));
            }
            $this->set('infos',$infos);
        }
    }

    function campos_localidad() {
        $ids_productores_frutihorticolas=$this->Productor->ActividadtiposProductor->find('list',array(
            'fields'=>'ActividadtiposProductor.productor_id',
            'conditions'=>array('ActividadtiposProductor.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
            'order'=>'ActividadtiposProductor.productor_id',
            'recursive'=>'-1'
        ));
        $camposLocalidad=$this->Predio->find('all',array(
            'fields'=>array(
            'COUNT(`Predio`.`id`) AS `total`',
            'SUM(`Predio`.`sup_pred`) AS `suptotal`',
            'AVG(`Predio`.`sup_pred`) AS `suppromedio`',
            'Localidad`.`nombre_loc',
            'Localidad`.`departamento_id'),
            'conditions'=>array('Predio.productor_id'=>$ids_productores_frutihorticolas),
            'group'=>'Predio.localidad_id',
            'order'=>'Localidad.nombre_loc'
        ));
        if ($camposLocalidad) {
            foreach ($camposLocalidad as $cxl) {
                $infos[]=$cxl+$this->Departamento->find('first',array(
                    'fields'=>array('Departamento.nombre_dpto','Provincia.nombre_prov'),
                    'conditions'=>array('Departamento.id'=>$cxl['Localidad']['departamento_id'])
                ));
            }
            $this->set('infos',$infos);
        }
    }

    function cultivos_localidad() {
        Configure::write('debug','0');
        if(!empty($this->data)) {
            $id_producto=$this->data['Producto']['id'];
            $cultivosFrecuenciaLocalidad=$this->Produccion->query(
                "SELECT
                COUNT(`Produccion`.`id`) AS 'total',
                (SUM(`Produccion`.`sup_sem_prod`)/10000) AS 'suptotal',
                `Producto`.`nombre_prod`, `Producto`.`variedad_prod`,
                `Localidad`.`nombre_loc`, `Produccion`.`id`
                FROM `producciones` AS `Produccion`
                LEFT JOIN `productos` AS `Producto` ON (`Produccion`.`producto_id` = `Producto`.`id`)
                LEFT JOIN `predios` AS `Predio` ON (`Produccion`.`predio_id` = `Predio`.`id`)
                LEFT JOIN `localidades` AS `Localidad` ON (`Predio`.`localidad_id` = `Localidad`.`id`)
                WHERE `Produccion`.`producto_id`=$id_producto
                GROUP BY `Localidad`.`nombre_loc`
                ORDER BY `Produccion`.`producto_id` ASC, `Localidad`.`nombre_loc` ASC"
            );
            $this->set('infos',$cultivosFrecuenciaLocalidad);
            $this->render('/elements/update_cultivos_localidad','ajax');
        }else {
            $this->set('productos',$this->Producto->find('superlist',array(
                'fields'=>array('Producto.id','Producto.nombre_prod','Producto.variedad_prod'),
                'conditions'=>array('Producto.actividadtipo_id'=>$this->ID_FRUTIHORTICOLA),
                'order'=>array('Producto.nombre_prod'=>'ASC','Producto.variedad_prod'=>'ASC')
            )));
        }
    }
}
?>